import {
	ENV
} from '.env.js'


let num = 1

// 请求拦截器
uni.addInterceptor('request', {
	invoke(args) {
		if (args.url.indexOf('https://') === -1 && args.url.indexOf('http://') === -1) {
			args.url = ENV.BASE_API + args.url
		}
	},
	success(args) {
		// console.log('success', args)
	},
	fail(err) {
		// console.log('interceptor-fail',err)
	},
	complete(res) {
		// console.log('interceptor-complete',res)
	}
})

// 请求函数
function request(config) {
	return new Promise((resolve, reject) => {

		let header = {}

		// if (config.url == 'api.php?m=sea.Run') {
		// 	header = {
		// 		[ENV.HEAD]: uni.getStorageSync('token') || '',
		// 		'content-type': 'multipart/form-data'
		// 	}
		// } else {
			header = {
				[ENV.HEAD]: uni.getStorageSync('token') || '',
				'content-type': config.contentType || 'application/json;charset=utf-8'
			}
		// }
		uni.request({
			url: config.url,
			data: config.data || {},
			header: header,
			method: config.method || 'POST',
			dataType: config.dataType || 'JSON',
			success: async (res) => {
				
				// #ifdef APP-PLUS || H5
				var data = res.data
				// #endif
				// #ifdef MP-WEIXIN
				var data = JSON.parse((res.data))
				// #endif
				// if ((data.code === 215 || data.code === 107) && config.url != '/sys/login' ) {
				//   uni.clearStorage();
				//   uni.showToast({
				//     icon: 'none',
				//     title: data.msg,
				//     success: () => {
				//       setTimeout(() => {
				//         uni.navigateTo({
				//           url: '/pages/login/index'
				//         })
				//       }, 800)
				//     }
				//   })
				// }
				resolve(data)
			},
			fail: (err) => {
				uni.hideLoading();
				uni.showToast({
					icon: 'none',
					title: '接口请求失败'
				})
				reject(err)
			},
			complete: (res) => {
				try {
					config.complete(res)
				} catch (e) {
					uni.hideLoading();
					// TODO handle the exception
				}
			}
		})
	})
}

export default request